module(
    name = "other_module",
)

# This module is using the same version of rules_python
# that the parent module uses.
bazel_dep(name = "rules_python", version = "")

# The story behind this commented out override:
# This override is necessary to generate/update the requirements file
# for this module. This is because running it via the outer
# module doesn't work -- the `requirements.update` target can't find
# the correct file to update.
# Running in the submodule itself works, but submodules using overrides
# is considered an error until Bazel 6.3, which prevents the outer module
# from depending on this module.
# So until 6.3 and higher is the minimum, we leave this commented out.
# local_path_override(
#     module_name = "rules_python",
#     path = "../../..",
# )

PYTHON_NAME_39 = "python_3_9"

PYTHON_NAME_311 = "python_3_11"

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    configure_coverage_tool = True,
    python_version = "3.9",
)
python.toolchain(
    configure_coverage_tool = True,
    # In a submodule this is ignored
    is_default = True,
    python_version = "3.11",
)

# created by the above python.toolchain calls.
use_repo(
    python,
    "python_versions",
    PYTHON_NAME_39,
    PYTHON_NAME_311,
)

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
    hub_name = "other_module_pip",
    # NOTE: This version must be different than the root module's
    # default python version.
    # This is testing that a sub-module can use pip.parse() and only specify
    # Python versions that DON'T include whatever the root-module's default
    # Python version is.
    python_version = "3.11",
    requirements_lock = ":requirements_lock_3_11.txt",
)
use_repo(pip, "other_module_pip")
